#include "mainwindow.h"
#include "ui_mainwindow.h"

#include <QPushButton>
#include <QTimer>
#include <QTime>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    QTimer* timer = new QTimer(this);

    // 修改定时器对象的精度
    timer->setTimerType(Qt::PreciseTimer);

    connect(ui->loopBtn, &QPushButton::clicked, this, [=]()
    {
       // 启动定时器
       if(timer->isActive())
       {
           timer->stop(); // 关闭定时器
           ui->loopBtn->setText("开始");
       }
       else
       {
           ui->loopBtn->setText("关闭");
           timer->start(1000); // 每隔1s 定格一次
       }
    });

    connect(timer, &QTimer::timeout, this, [=]()
    {
       QTime tm1 = QTime::currentTime(); // tm设为当前时间
       // 格式化当前系统时间
       QString tmStr1 = tm1.toString("hh:mm:ss.zzzz");
       // 设置要显示的时间
       ui->curTime->setText(tmStr1);
    });

    // 发射单次信号
    connect(ui->onceBtn, &QPushButton::clicked, this, [=]()
    {
        // 获取1.5s后的系统时间
        QTimer::singleShot(1500, this, [=]()
        {
            QTime tm2 = QTime::currentTime();
            // 格式化获取的时间
            QString tmStr2 = tm2.toString("hh:mm:ss.zzzz");
            ui->onceTime->setText(tmStr2);
        });
    });
}

MainWindow::~MainWindow()
{
    delete ui;
}

